pub fn convert_base(num_str: &str, to_base: u32) -> String {
    format!("{}{}",if num_str.starts_with("-") {"-"} else {""} ,String::from_utf8_lossy(&num_str.strip_suffix(")").unwrap().split_once("(").map(|(num, base)| {std::iter::successors(i128::from_str_radix(num, base.parse::<u32>().unwrap()).ok(),|n| match n / to_base as i128 {0 => None,n => Some(n),},)}).unwrap().collect::<Vec<_>>().iter().rev().map(|n| if *n < 0 {0-*n} else {*n}).map(|n| (n % to_base as i128) as u8).map(|n| if n < 10 { n + b'0' } else { n - 10 + b'a' }).collect::<Vec<_>>(),))
}